
3.1.1 概述
Animation:
· View Animation(视图动画,API Level 1)
· Tween Animation(补间动画)
· Frame Animation(逐帧动画)
· Property Animation(属性动画,API Level 11)
· ValueAnimator
· ObjectAnimator
视图动画仅能对指定的控件做动画,而属性动画是通过改变控件的某一属性值来做动画的。视图动画还有一个缺陷,就是只能点击原始区域才能响应事件。
3.1.2 ValueAnimator 的简单使用
ValueAnimator 不会对控件执行任何操作,我们可以给它设定从哪个值运动到哪个值,通过监听这些值的渐变过程来使自己操作控件。

示例:
ValueAnimator 只负责对指定值区间进行动画运算,我们需要对运算过程进行监听,然后自己对控件执行动画操作;动画结束后,控件仍然可以响应单击事件。
3.1.3 常用函数
1. ofInt 与 ofFloat
|
|
参数类型都是可变长参数,如上例中的 ofInt(0, 400, 200) 就表示从数字 0 变化到数字 400 再变化到 200。
上例中可以强转为 Integer 是因为使用的是 ofInt 方法设定动画初始值。当使用 ofFloat 函数设定初始值后,则需要强转为 Float 类型。后面介绍的 ofObject 函数也是如此。
2. 常用函数
| 方法 | 描述 |
|---|---|
| ValueAnimator setDuration(long duration) | 设置动画时长,单位是毫秒 |
| Object getAnimatedValue() | 获取 ValueAnimator 在运动时当前运动点的值 |
| void start() | 开始动画 |
| void cancel() | 取消动画 |
| void setRepeatCount(int value) | 循环次数,ValueAnimator.INFINITE 表示无线循环 |
| void setRepeatMode(int value) | 循环模式:ValueAnimator.RESTART、REVERSE |
| void setStartDelay(long startDelay) | 延时多久开始,毫秒 |
| ValueAnimator clone() | 完全克隆一个 ValueAnimator 示例,包括所有设置和对监听器代码的处理。 |
3. 监听器
1)添加监听器
2)移除监听器
3.1.4 示例:弹跳加载中效果

自定义 LoadingImageView.java
act_main.xml
